1.jdk使用jdk1.8

2.jacob.dll放在..\jdk1.8\jre\bin目录下

3.eclipse的jre版本要和jdk一致，window->preferences->java->compiler勾选jdk 1.8

4.window->preferences->java->InstalledJREs->Add  配置成jdk1.8.0_22版本 然后勾选上 点击ok、

5.在项目目录下新建lib目录，将jacob.jar文件拷贝到该目录下，点build path->configbuild path ->libraries

 1）Add JARs->选择lib目录下的jacob.jar点击Ok

 2)移除项目原来的JRE System Library ,AddLibrary->JRE System Library 选择之前添加的jdk1.6.0_22 ，点击finish

点击ok,libraries配置完毕;如下图

备注：1.jacob.jar不要放到jdk的目录下，可能有冲突

     2.jacob.dll经测试放在..\jdk1.6.0_22\jre\bin下被成功引用，其他目录建议不放，防止出现奇葩问题，（可自己测试在其他目录下，会不会出事）。

     3.出现Can'tco-create object问题，可能是之前调用dll后，没有释放资源，需要加入如下代码

先导入importcom.jacob.com.ComThread;//在jacob1.9版本里有这个类，1.6和1.7版本经测试无法导入此类

               ComThread.InitSTA();// 初始化COM线程

               // 以下操作word代码

               MSWordManager ms=new MSWordManager(false);

               //生成一个MSwordManager对象,并且设置显示Word程序

               ms.openDocument("D:\\12.doc");

               //创建一个新的.doc文件

               ms.putTxtToCell(1, 1, 2, "！！！！");

               //插入文本

               ms.save("D:\\12.doc");

               //保存.doc文件

               ms.close();

               ms.closeDocument();

               // 以上操作word代码

               ComThread.Release();// 操作完成后，释放COM线程

       4.以下代码可以避免上述Can't co-create object问题

，在finally中释放资源

              ActiveXComponentapp = new ActiveXComponent("Word.Application"); // 启动word

              StringinFile = "D:\\123.doc"; // 要替换的word文件

              try{

                     app.setProperty("Visible",new Variant(false)); // 设置word不可见

                     Dispatchdocs = app.getProperty("Documents").toDispatch();

                     Dispatchdoc = Dispatch.invoke(

                                   docs,

                                   "Open",

                                   Dispatch.Method,

                                   newObject[] { inFile, new Variant(false),

                                                 newVariant(false) }, new int[1]).toDispatch();

                     //打开word文件，注意这里第三个参数要设为false，这个参数表示是否以只读方式打开，

                     //因为我们要保存原文件，所以以可写方式打开。



                     Dispatchselection = app.getProperty("Selection").toDispatch();// 获得对Selection组件

                     Dispatch.call(selection,"HomeKey", new Variant(6));// 移到开头

                     Dispatchfind = Dispatch.call(selection, "Find").toDispatch();// 获得Find组件

                     Dispatch.put(find,"Text", "name"); // 查找字符串"name"

                     Dispatch.call(find,"Execute"); // 执行查询

                     Dispatch.put(selection,"Text", "111"); // 替换为"111"



                     Dispatchfind1 = Dispatch.call(selection, "Find").toDispatch();// 获得Find组件

                     Dispatch.call(selection,"HomeKey", new Variant(6));// 移到开头

                     Dispatch.put(find1,"Text", "8位随机生成密码"); // 查找字符串

                     Dispatch.call(find1,"Execute"); // 执行查询

                     Dispatch.put(selection,"Text", "222");



                     StringnewFileName = "D:\\temp.doc";

                     Dispatch.call(doc,"SaveAs", newFileName); // 另存文件

                     Dispatch.call(doc,"Close", new Variant(false));

                     System.out.println("isover");

              }catch (Exception e) {

                     e.printStackTrace();

              }finally {

                     app.invoke("Quit",new Variant[] {});

                     app.safeRelease();

              }

              5.workspace中的代码要求D盘根目录下有123.doc文件才能运行，否则会一致搜索不到相关词汇